1. Technical Field
This invention relates to computerized data processing systems, and more particularly to the deletion, locking, and reading of data stored in segmented storage.
2. Description of the Prior Art
Computerized data base management systems rely on very high-speed central processing units for the manipulation and processing of data, and on much slower physical storage devices for permanent storage of the data. When physically stored data is required for processing it is transferred from the storage device to a buffer, where it can be read, updated, or otherwise processed. If after processing the page's contents in the buffer have been updated, the page is copied back to physical storage to replace the data which was previously stored. Buffers can reside in either high-speed electronic storage (real storage) such as the main memory of a central processing unit (CPU), or in high-speed physical storage devices (paging devices).
Each transfer of a page of data from physical storage to a buffer, a process known as "buffer paging", requires either about 2 milliseconds (ms) or 20 ms, depending on whether the page was accessed sequentially (immediately after the preceding stored page) or randomly. In typical large data bases having millions of records of data distributed over perhaps 100,000 data pages, randomly reading the entire data base would require over one-half hour for buffer paging alone. Any reduction in the number of data pages required to be paged into the buffers translates into a direct, significant improvement in the data base's performance. It is therefore desirable to minimize buffer paging by eliminating unnecessary requests to read pages of data.
The technique known as "page level locking" is used in data base management systems to allow a data base to be concurrently accessed or updated by multiple users or programs. Using page level locking, each page that is accessed or updated by a user or program is "locked" to prevent simultaneous access or updating by any other user or program. Locking is an expensive operation which uses much CPU time, and may seriously reduce the system's performance and response time. It is therefore desirable to minimize locking without sacrificing the concurrency control required for effective use by multiple users.
W. Chu et al., "Fault Tolerant Locking for Tightly Coupled Systems", Proceedings of the 5th Symposium on Reliability in Distributed Software and Database Systems, IEEE Computing Society Press, copyright 1986, pp. 49-55, disclose a fault-tolerant locking protocol in which a lock word containing the status of a group of records is appended to that group. The processor consults a status table before accessing the group. Statuses recorded are: free, locked, update initiated, or failed.
Data base management systems use log records to allow failed transactions or operations to be undone. This capability is critical because if the transaction or operation fails midway through its completion, some data will have been changed while other data will remain in its previous state. The log records written up to the point of the failure can be used to restore or roll back the table to its original condition, so that the transaction or operation can be begun again. Once a transaction or operation has been completed and its changes to the data can be made permanent, the transaction or operation is "committed". After its commitment, a transaction or operation cannot be undone.
One important class of data base management systems is relational data base management systems. In a relational data base management system, data is perceived to exist in one or more tables or "relations", each consisting of a specific number of columns and a variable number of unordered rows or "records". The advantage of relational data base management systems is that their data can be accessed by referring to its content instead of its specific organization or location in storage.
In the past, the deletion of the entire contents of a large data entity, such as a relational data base table, a process also known as a mass delete or an unqualified delete, has required a great deal of time for large data entities. This is because the mass delete process must delete the entity's records (rows) one by one, writing a log record for every deleted record.